The present invention is directed to the field of computer peripherals, and more particularly, to the field of storage devices.
A peripheral device (xe2x80x9cperipheralxe2x80x9d) is a device that is connected to and controlled by a computer system. Peripherals include such devices as a disk drive, printer, modem, optical scanner, or joystick. Peripherals may be connected to a computer system via various types of connections, including a PCI bus, a parallel connection, or a serial connection. Modern serial connections include Universal Serial Bus (xe2x80x9cUSBxe2x80x9d) and 1394 connections. Modem serial connections generally permit several peripheral devices to be attached to a computer system via the same serial connection. For instance, a printer, a scanner, and a joystick could all be connected to a computer system via a single USB connection.
Computer systems generally include a program called an operating system that, among other things, manages communications between the computer system and its peripherals. In order to communicate with a particular peripheral, an operating system generally requires an additional computer program called a xe2x80x9cdriver.xe2x80x9d The driver for a particular peripheral generally knows the capabilities of the peripheral and the command set for the peripheral. While modem operating systems generally include drivers for common devices, such as hard disk drives, there are many peripherals for which operating systems do not include drivers. In particular, operating systems seldom provide drivers for peripherals that were not available when the operating system was released. In order to use such a peripheral in conjunction with a computer system, the operating system on that computer system must install a driver for the peripheral. Providing such a driver can be a significant inconvenience for the user attempting to use the peripheral. For example, the user may be required to locate a floppy disk or CD that contains the driver, or to download the driver from the Internet. Based on the foregoing, a new peripheral that did not require the provision of a separate driver would have significant utility.
In addition to their drivers, some peripherals also operate in conjunction with other programs. For example, optical scanners often operate in conjunction with an application program for creating in the computer system digital representations of documents that are scanned by the scanner. Similarly, sequential access tape drives often operate in conjunction with file backup utilities that copy the contents of a hard disk drive to a sequential tape cartridge. A new peripheral that did not require the separate provision of these additional programs would also have significant utility.
Entertainment, or xe2x80x9cgamexe2x80x9d software titles are available for many general-purpose computer systems. Such entertainment titles are usually distributed on CD-ROM. While some entertainment titles are small and can be completely loaded into memory from CD-ROM quickly, modem entertainment titles continue to grow larger and larger, containing large quantities of executable program code, as well as large quantities of data, such as digitized sounds, images, and video clips. Because of the relatively low data transfer rate of CD-ROM drives, these modem entertainment titles appear to load and execute slowly, which often produces significant user dissatisfaction. Based on the foregoing, a new, faster medium for distributing entertainment titles for general-purpose computer systems would have significant utility.
Further, entertainment titles and other software titles frequently contain some portions that must be loaded from the medium quickly, and other portions that may be loaded from the media more slowly. For example, an entertainment title may have executable code that must be loaded quickly, as well as a video sequence that may be loaded more slowly as the video sequence plays. Unfortunately, because software titles are typically shipped on media of a single type, developers must choose either to ship the entire software title on a medium having a low transfer rate and create user dissatisfaction during the loading of the portions that must be loaded from the medium quickly, or to ship the entire software title on a medium having a high transfer rate and drive up the cost of manufacturing the software product. Based on foregoing, a new, speed heterogeneous medium for distributing software titles would have significant utility.
The present invention is directed to a solid-state read-only memory device that may be connected to a computer system via a serial connection, such as a Universal Serial Bus or 1394 connection, and that does not require a special driver. When it is initialized as part of initializing the devices on the serial connection during the operating system""s boot process, the memory device inaccurately identifies itself as a storage device of a type known to the operating system, such as a hard drive. The contents of the memory device can then be read using portions of the operating system designed and provided for reading from storage devices of the identified type.
Such a memory device has several useful applications. First, it can be used alone as a fast form of storage, having both a small latency time and a large transfer rate. Such use is well-suited to video game cartridges, such as those used with popular video game console systems. Second, the memory device can be incorporated in another device. For example, such a memory device containing a driving video game may be incorporated in a steering wheel game controller. As a further example, such a memory device can be incorporated in a peripheral device, such as a printer or a scanner. Such a memory device may contain a driver for the peripheral device. When the serial connection is initialized, the memory device inaccurately identifies itself as a hard drive, and the peripheral device correctly identifies itself by its peripheral device type. If the correct driver for the identified device type is not already available computer system, the computer system searches all available storage devices, including the memory device of the invention, where it finds the correct driver for the peripheral device. The computer system can then install this driver, and proceed to use the new peripheral device without requiring the correct driver to be provided manually. Instead of the driver or in addition to the driver, the memory device may contain additional programs, such as application programs that utilize the peripheral device. By integrating the memory device into the additional device, it can be guaranteed that the data stored in the memory device is always available in conjunction with the additional device. Finally, the solid-state memory device may be combined with a storage device having different characteristics, such as a CD-ROM drive with media. Such a combination may be used with applications that have different retrieval performance requirements for different portions of their data. As an example, a game may include executable code, which must be loaded quickly, and video data, which can be loaded more slowly. In accordance with such requirements, the executable code could be stored in the faster solid-state memory device, while the video data could be stored on the cheaper CD-ROM.